The Internet comprises a vast number of computers and computer networks that are interconnected through communication links. The communication links exchange digital information using the well-known, standard transmission control protocol/Internet protocol (TCP/IP). Application protocols such as hypertext transfer protocol (HTTP) and file transfer protocol (FTP) are used on top of TCP/IP. Similar or identical transmission protocols and application protocols are also used by modern computers to communicate via private networks, such as intranets and local area networks (LAN's). These application protocols allow a server computer system to send information to a remote client computer system. The remote client computer system can then display or otherwise make use of the information. In the case of HTTP, the information might be displayed in the form of a so-called World Wide Web page.
The dramatic increase in Internet usage and in other forms of client/server communication in recent years has meant that servers receive more and more requests and are handling more and more connections and responses. Therefore, the speed at which servers operate in terms of the number of requests handled in a given time period has become very important in the overall speed and performance of Internet and other computer communication systems.
One factor that adversely affects the performance of an operating system and applications installed on a server is the need for the server to repeatedly assemble and format the same reply repeatedly, using up overhead and instruction cycles each time. One example of such a reply is a Web page. If any part of the page changes for each “hit,” the entire page must be reformatted and assembled to be sent to a browser. Such a page is referred to as a dynamic reply. The part of the page that changes is referred to as a dynamic object. Static replies or pages, by contrast, can be cached at the server and sent without having to be reassembled and formatted. But increased use of dynamic content on the Internet has made such static replies few and far between.
Often large portions of a Web page stay the same over many accesses by many different client applications or Web browsers. Sometimes only a time and date field or an advertisement changes. Yet the server must reassemble the complete page each time a browser requests it. If the same browser requests the page again, it is possible for the browser to cache static objects that form portions of the page, and only retrieve the dynamic objects. However many Web site operators set up their sites so that caching is not possible on browsers. In this case again, the complete Web page needs to be assembled each time it is requested.